/*
 * src/interfaces/ecpg/include/sqlda-compat.h
 */

#ifndef ECPG_SQLDA_COMPAT_H
#define ECPG_SQLDA_COMPAT_H

struct sqlvar_compat
{
	short		sqltype;		/* 变量类型				*/
	int			sqllen;			/* 字节长度				*/
	char	   *sqldata;		/* 数据指针				*/
	short	   *sqlind;			/* 指示符指针			*/
	char	   *sqlname;		/* 变量名称				*/
	char	   *sqlformat;		/* 未来使用保留		*/
	short		sqlitype;		/* ind 变量类型			*/
	short		sqlilen;		/* ind 字节长度			*/
	char	   *sqlidata;		/* ind 数据指针				*/
	int			sqlxid;			/* 扩展 id 类型				*/
	char	   *sqltypename;	/* 扩展类型名称			*/
	short		sqltypelen;		/* 扩展类型名称长度 */
	short		sqlownerlen;	/* 所有者名称长度			*/
	short		sqlsourcetype;	/* 内置类型的源类型用于区分 */
	char	   *sqlownername;	/* 所有者名称					*/
	int			sqlsourceid;	/* 源类型的扩展 id		*/

	/*
	 * sqlilongdata 是新的。它支持超过 32K 限制的数据。
	 * sqlilen 和 sqlidata 是为了向后兼容，它们的
	 * 最大值小于 32K。
	 */
	char	   *sqlilongdata;	/* 超过 32K 的数据字段	*/
	int			sqlflags;		/* 仅供内部使用		*/
	void	   *sqlreserved;	/* 未来使用保留		*/
};

struct sqlda_compat
{
	short		sqld;
	struct sqlvar_compat *sqlvar;
	char		desc_name[19];	/* 描述符名称				*/
	short		desc_occ;		/* sqlda 结构的大小		*/
	struct sqlda_compat *desc_next; /* 指向下一个 sqlda 结构的指针 */
	void	   *reserved;		/* 未来使用保留 */
};

#endif							/* ECPG_SQLDA_COMPAT_H */
